package avicit.im.lantop.docmanager.deptdocarrange.action.service;

import avicit.im.lantop.docmanager.mydocmanager.domain.LantopFileShare;
import avicit.im.lantop.docmanager.mydocmanager.domain.LantopSubmit;
import avicit.im.lantop.docmanager.mydocmanager.domain.LantopSubmitItem;
import avicit.platform6.commons.utils.web.TreeNode;
import avicit.platform6.core.domain.BeanProcess;
import org.springframework.web.servlet.ModelAndView;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * <p>金航数码科技有限责任公司</p>
 * <p>作者：钟一华</p>
 * <p>邮箱：feifan1985@163.com</p>
 * <p>创建时间： 2014-10-27 上午10:22:02 </p>
 * <p>类说明：部门文件管理_业务接口</p>
 * <p>修改记录： </p>
 */
public interface DeptdocarrangeService {

	/**
	 * 获得文件分类树结构
	 * @author 钟一华
	 * @return List<TreeNode>
	 * @throws
	 */
	public List<TreeNode> getDeptDocManagerTreeNodes(String orgId, String deptId, String userId, String ip) throws Exception;
	
	/**
	 * 获得文件分类树结构
	 * @author 钟一华
	 * @return List<TreeNode>
	 * @throws
	 */
	public List<TreeNode> getAllDeptDocManagerTreeNodes(String orgId, String deptId, String userId, String ip, List<String> deptIdList) throws Exception;
	
	/**
	 * 归档信息保存方法
	 * @author 钟一华
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public BeanProcess saveSubmitData(LantopSubmit ls, Map<String, Object> parameter) throws Exception;
	/**
	 * 归档信息明细保存方法
	 * @author 钟一华
	 * @param lsi
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public String saveSubmitItemData(LantopSubmitItem lsi) throws Exception;
	
	/**
	 * 获得共享设置列表集合
	 * @author 钟一华
	 * @param nodeId
	 * @param tableId
	 * @return
	 * @throws Exception List<Map<String,Object>>
	 * @throws
	 */
	public List<Map<String, Object>> getSharelist(String nodeId, String tableId, String sqlIds) throws Exception;
	
	/**
	 * 保存共享设置列表信息
	 * @author 钟一华
	 * @param lfs
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public String saveFileShare(LantopFileShare lfs) throws Exception;
	
	/**
	 * 删除选中共享设置信息
	 * @author 钟一华
	 * @param id
	 * @throws Exception void
	 * @throws
	 */
	public void deleteShareData(String id) throws Exception;
	
	/**
	 * 通过id获得归档表名称
	 * @author 钟一华
	 * @param id
	 * @return
	 * @throws Exception LantopSubmit
	 * @throws
	 */
	public String getSubmitByIds(String id) throws Exception;

	/**
	 * 通过id获得归档表数据
	 * @author 钟一华
	 * @param id
	 * @return
	 * @throws Exception LantopSubmit
	 * @throws
	 */
	public LantopSubmit getSubmitById(String id) throws Exception;
	/**
	 * 通过submitId获得submititem数据
	 * @author 钟一华
	 * @param id
	 * @return
	 * @throws Exception LantopSubmitItem
	 * @throws
	 */
	public List<LantopSubmitItem> getSubmitItemBySid(String id, String tableId) throws Exception;
	
	/**
	 * 更新归档数据方法
	 * @author 钟一华
	 * @param ls
	 * @throws Exception void
	 * @throws
	 */
	public void updateSubmitData(LantopSubmit ls) throws Exception;
	
	/**
	 * 修改流程结束后归档状态
	 * @author 钟一华
	 * @param id
	 * @throws Exception void
	 * @throws
	 */
	public void updateSubmitStatus(String id, String orgId, String deptId, String userId, String ip) throws Exception;
	
	/**
	 * 移除归档列表数据方法
	 * @author 钟一华
	 * @throws Exception void
	 * @throws
	 */
	public void deleteSubmitItemsById(LantopSubmitItem lsi) throws Exception;
	
	/**
	 * 通过submitId和recordId获得item数据
	 * @author 钟一华
	 * @param submitId
	 * @return
	 * @throws Exception LantopSubmitItem
	 * @throws
	 */
	public LantopSubmitItem getSubmitItemById(String recordId, String submitId) throws Exception;

	/**
	 * 通过数据id获得附件id
	 * @author 钟一华
	 * @param recordId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public List<String> getAttachIdByRecordId(String recordId) throws Exception;

	/**
	 * 通过数据id获得附件id
	 * @author 钟一华
	 * @param recordId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public List<Map<String, Object>> getClassNodeId(String recordId) throws Exception;

	/**
	 * 通过数据id获得附件id
	 * @author 钟一华
	 * @param recordId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public List<Map<String, Object>> getSourceName(String recordId) throws Exception;
	/**
	 * 通过数据id获得附件id
	 * @author 钟一华
	 * @param recordId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public List<Map<String, Object>> getSourceNames(String recordId) throws Exception;
	/**
	 * 通过数据id获得附件id
	 * @author 钟一华
	 * @param recordId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public Map<String,Object> getOrgId(String recordId) throws Exception;
	
	/**
	 * 获得流程状态
	 * @author 钟一华
	 * @param id
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public String checkStatusById(String id) throws Exception;
	
	
	/**
	 * 通过共享用户和部门id,和数据id获得共享id
	 * @author 钟一华
	 * @param nodeId
	 * @param tableId
	 * @param shareSqlIds
	 * @param recordSqlIds
	 * @return
	 * @throws Exception List<Map<String,Object>>
	 * @throws
	 */
	public List<Map<String, Object>> getShareListByRecordIdsAndShareIds(String nodeId, String tableId, String shareSqlIds, String recordSqlIds) throws Exception;
	
	/**
	 * 通过归档id反查获得tableId
	 * @author 钟一华
	 * @param id
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public String getTableIdByFormId(String id) throws Exception;
	
	/**
	 * 获得目标档案库列表
	 * @author 钟一华
	 * @param tableId
	 * @return
	 * @throws Exception List<Map<String,Object>>
	 * @throws
	 */
	public List<Map<String, Object>> getTargetTreeNode(String tableId) throws Exception;
	
	/**
	 * 判断选中数据是否提交流程
	 * @author 钟一华
	 * @param ids
	 * @return
	 * @throws Exception boolean
	 * @throws
	 */
	public boolean checkRecordIsFlag(String ids) throws Exception;
	
	/**
	 * 判断数据是否存在共享
	 * @author 钟一华
	 * @param id
	 * @return
	 * @throws Exception boolean
	 * @throws
	 */
	public boolean isExistShareByRecordId(String id) throws Exception;

	/**
	 * 取消共享设置方法
	 * @author 钟一华
	 * @param id
	 * @throws Exception void
	 * @throws
	 */
	public void deleteShareDataByRecord(String id) throws Exception;
	
	/**
	 * 判断选中数据是否对本部门进行过共享
	 * @author 钟一华
	 * @param dataId
	 * @param deptId
	 * @return
	 * @throws Exception boolean
	 * @throws
	 */
	public boolean isExistFileShareByDataIdAndDeptId(String dataId, String deptId) throws Exception;
	
	/**
	 * 通过部门id和tableid获得共享数据
	 * @author 钟一华
	 * @param tableId
	 * @param deptId
	 * @return
	 * @throws Exception List<LantopFileShare>
	 * @throws
	 */
	public List<LantopFileShare> getShareDataIdsByTableIdAndDeptId(String nodeId, String tableId, String deptId, String userId) throws Exception;
	
	/**
	 * 通过部门id获取共享信息集合
	 * @param parent
	 * @param deptId
	 * @return
	 * @throws Exception List<LantopFileShare>
	 * @throws
	 */
	public List<LantopFileShare> getShareDataIdsByParentAndDeptId(String parent, String deptId) throws Exception;
	
	/**
	 * 获得目标档案库树结构数据
	 * @author 钟一华
	 * @param tableId
	 * @return
	 * @throws Exception List<TreeNode>
	 * @throws
	 */
	public List<TreeNode> getTargetDatasByTableId(String tableId) throws Exception;
	
	/**
	 * 通过父节点ID获得叶子节点id
	 * @author 钟一华
	 * @param parentId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public List<Map<String, Object>> getChildNodeIdByParentId(String parentId) throws Exception;
	
	/**
	 * 根据节点ID获得父节点ID
	 * @author 钟一华
	 * @param nodeId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public String getParentNodeIdById(String nodeId) throws Exception;
	
	/**
	 * 通过数据id获得共享数据集合
	 * @author 钟一华
	 * @return
	 * @throws Exception List<LantopFileShare>
	 * @throws
	 */
	public List<LantopFileShare> getShareListByRecordId(String recordId) throws Exception;
	
	/**
	 * 通过nodeid获得选择节点树结构
	 * @author 钟一华
	 * @param startNodeId
	 * @return
	 * @throws Exception List<Map<String,Object>>
	 * @throws
	 */
	public List<Map<String, Object>> getSelectNodesByStartNodeId(String startNodeId) throws Exception;
	
	/**
	 * 树查询方法
	 * @author 钟一华
	 * @param loginUserId
	 * @param value
	 * @return
	 * @throws Exception List<TreeNode>
	 * @throws
	 */
	public List<TreeNode> getSearchTreeBySearchData(String loginUserId, String loginDeptId, String value) throws Exception;
	
	/**
	 * 通过节点id和部门id获得向上向下节点数据
	 * @author 钟一华
	 * @param nodeId
	 * @param deptId
	 * @return
	 * @throws Exception List<Map<String,Object>>
	 * @throws
	 */
	public List<Map<String, Object>> getTableDataByNodeId(String nodeId, String deptId) throws Exception;
	
	/**
	 * 根据节点路径获得树结构数据
	 * @author 钟一华
	 * @param path
	 * @param parentId
	 * @return
	 * @throws Exception List<TreeNode>
	 * @throws
	 */
	public List<TreeNode> getSelectNodesByPath(String path, String parentId) throws Exception;
	
	/**
	 * 根据数据ids和部门ids和用户ids查询是否存在共享
	 * @author 钟一华
	 * @param dataIds
	 * @param deptIds
	 * @param userIds
	 * @return
	 * @throws Exception boolean
	 * @throws
	 */
	public boolean checkFileShareByRecordIdAndShareDeptIdsAndShareUserIds(String[] dataIds, String[] deptIds, String[] userIds) throws Exception;

	/**
	 * 根据数据id获得流程节点值
	 * @author 钟一华
	 * @param id
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public String getTaskNumberById(String id) throws Exception;
	
	/**
	 * 通过源表id获得目标节点id
	 * @author 钟一华
	 * @param sourceTableId
	 * @return
	 * @throws Exception String
	 * @throws
	 */
	public String getTargetTreeDataBySourceTableId(String sourceTableId) throws Exception;
	
	/**
	 * 根据名称获取节点ID（用于归档流程最后一步档案库节点选中）
	 * @author 郭亮
	 * @param nodeName
	 * @return
	 * @throws Exception String
	 */
	public String getNodeIdByName(String nodeName) throws Exception;

	/**
	 * 根据归档ID获取归档数据的归档单位名称
	 * @param submitId
	 * @return
	 * @throws Exception 
	 * @throws
	 */
	public String getDeptNameBySubmitId(String submitId) throws Exception;
	
	/**
	 * 在归档 流程后处理 之前做唯一索引判断
	 */
	public Map<String,Object> beforeNotify(String formId, String nodeId) throws Exception;

	/**
	 * 将数据还原成归档前的状态
	 * @param sysId
	 * @param orgId
	 * @param deptId
	 * @param tableName
	 * @param id
	 * @throws Exception void
	 * @throws
	 */
	public void updateStatus(String sysId, String orgId, String deptId, String tableName, String id) throws Exception;

	/**
	 * 迁移
	 * @param sysId
	 * @param orgId
	 * @param deptId
	 * @param params
	 * 			ids  数据id字符串
	 * 			tableId  迁移的表ID
	 * 			fileType 迁移数据类型，file 文件级；an 案卷级 ； box 盒级
	 * 			nodeId	节点id
	 * 			isRetain 是否保留原记录   no 不保留；yes  保留
	 * 			migrationNodeId  迁移到目标节点Id,
	 * 			sysId 	系统ID
	 * 			orgId   组织Id
	 * 			deptId  部门Id
	 * 			userId  当前登陆人ID
	 * 			ip		当前登陆IP
	 * 			version	//默认版本号未 0
	 *
	 * @throws Exception String
	 * @throws
	 */
	public String migrationData(String sysId, String orgId, String deptId,
                                Map<String, Object> params,String migrationType) throws Exception;


	/** create by huangjian 迁移把目标表默认值写入到数据中   鉴定分类（工作文件接收，在线归档接收 ）共用
	 * 迁移
	 * @param sysId
	 * @param orgId
	 * @param deptId
	 * @param params
	 * 			ids  数据id字符串
	 * 			tableId  迁移的表ID
	 * 			fileType 迁移数据类型，file 文件级；an 案卷级 ； box 盒级
	 * 			nodeId	节点id
	 * 			isRetain 是否保留原记录   no 不保留；yes  保留
	 * 			migrationNodeId  迁移到目标节点Id,
	 * 			sysId 	系统ID
	 * 			orgId   组织Id
	 * 			deptId  部门Id
	 * 			userId  当前登陆人ID
	 * 			ip		当前登陆IP
	 * 			version	//默认版本号未 0
	 *
	 * @throws Exception String
	 * @throws
	 */
	public String migrationDataItera(String sysId, String orgId, String deptId,
									 Map<String, Object> params, String migrationType) throws Exception;

	/**
	 * 获得目标档案库树结构数据
	 */
	public List<TreeNode> initDeptFileTree(String tableId, Map<String, Object> param) throws Exception ;


	/**
	 * @throws Exception
	 * 件号调整保存
	 * @param sysId
	 * @param orgId
	 * @param deptId
	 * @param params
	 * @param tableId
	 *
	 *
	 * @throws Exception String
	 * @throws
	 */
	public void savePieceNumber(String sysId, String orgId, String deptId,
                                String params, String tableId) throws Exception;


	/**
	 * @Author XMW
	 * @Description: 获取卷内数据列表数据
	 * @Param:
	 * @Return:
	 */
    Map<String,Object> editArchiveNum(String parentId, String tableId, String nodeId,String openParam,Integer page, Integer rows);
    
    
    /**
     * 调整保管号(件号)
     * @param parentId
     * @param tableId
     * @param nodeId
     * @param openParam
     * @param page
     * @param rows
     * @return Map<String,Object>
     * @throws
     */
    Map<String,Object> editZlztBgh(String parentId, String tableId, String nodeId,String openParam,Integer page, Integer rows);

	/**
	 * @Author XMW
	 * @Description: 保存修改后的卷内序号
	 * @Param:
	 * @Return:
	 */
	Map<String,Object> saveArchiveNum(String tableId, String params, String parentId);
	
	/**
	 * 保存保管号
	 * @param tableId
	 * @param params
	 * @param parentId
	 * @return Map<String,Object>
	 * @throws
	 */
	Map<String,Object> saveBgh(String tableId, String params, String parentId,String nodeId);

	List<Map<String,Object>> getArchivingViewByNodeId(String nodeid, Integer page, Integer rows, String type, String tableName,String lei,String orgCode)throws Exception;

	String getPage(String nodeid, Integer page, Integer rows, String type, String tableName,String lei,String orgCode)throws Exception;

	/**
	 * @Author XMW
	 * @Description: 卷内序号自动排序
	 * @Param:
	 * @Return:
	 */
    Map<String,Object> autoArchiveSort(String tableId, String sysId, String parentId,String openParam);
    
    /**
	 * @Author XMW
	 * @Description: 保管号自动排序
	 * @Param:
	 * @Return:
	 */
    Map<String,Object> autoBghSort(String tableId, String sysId, String parentId,String openParam,String nodeId);


	/**
	 *
	 * @param mergeId
	 * @param id
	 * @return
	 */
    List<String> updateFJRecordId(String mergeId, String id);

	int closeMerge(String mergeIds, String fjIdsMap,String tableId);
	
	/**
	 * Mr.An
	 * @param orgid
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> getDeptDataGridByOrgId(String orgid,String orgName)throws Exception;

	int fileRecycleSave(String nodeId, String fileId, String tableName, String sysId, String orgId);

	/**
	 * 判断是否属于科技类元数据节点
	 * @param kjltablename
	 * @return
	 */
    Boolean isKJLSourceData(String kjltablename,String fieldName);

	/**
	 * 根据 四个id
	 * @param sysId
	 * @param orgId
	 * @param deptId
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> getMAXNUMById(String sysId,String orgId,String deptId,String userId,String type)throws Exception;

	/**
	 * 根据formId修改对应档案的流程状态
	 * @param formId
	 * @throws Exception
	 */
	void updateArchivesStatus(String formId)throws Exception;

	/**
	 * 根据orgId查询全宗树
	 * @param orgId
	 * @return
	 * @throws Exception
	 */
	List<TreeNode> getGeneralArchiveTree(String orgId)throws Exception;

	/**
	 * 根据formId，修改待办题名
	 * @param formId
	 * @param name
	 * @throws Exception
	 */
	void  updateCommission(String formId,String name)throws Exception;

	/**
	 * 根据deptid查询下级部门
	 * @param deptId
	 * @param selectType
	 * @return
	 * @throws Exception
	 */
	String getDeptListByDeptFaId(String deptId,String selectType)throws Exception;

	/**
	 * 根据案卷表id获取文件表id
	 * @param tableId
	 * @return
	 * @throws Exception
	 */
    List<Map<String, Object>> getTableIdByAnTableId(String tableId)throws Exception;

	/**
	 * 根据表Id和 全宗id获取对应表树
	 * @param tableId
	 * @param OrgId
	 * @return
	 * @throws Exception
	 */
	List<TreeNode> getTargetDatasByTableIdAndOrgId(String tableId, String OrgId) throws Exception;

	/**
	 * 根据formId 添加对应待办的跨全宗的对应全宗的orgId
	 * @param formId
	 * @param orgId
	 * @throws Exception
	 */
	void updateCommissionByOrgId(String formId,String orgId)throws Exception;
	/**
	 * @Title: groupColumnsDataInterface
	 * @Description: 将所有默认值填充到字段中
	 * @param sourceFileTableName 源表名称
	 * @param orgId 全宗ID
	 * @param formShowList  所有字段集合列
	 * @param migData 数据
	 * @return java.util.List<java.util.List<java.util.Map<java.lang.String,java.lang.Object>>>
	 * @date 2019-08-31
	 * @author HuangJian
	 */
	List<List<Map<String, Object>>> groupColumnsDataInterface(String sourceFileTableName, String orgId, List<Map<String, Object>> formShowList, List<Map<String, Object>> migData) throws Exception;
	/**
	* @Title: sourceKeyReplaceTgtKey 
	* @Description:  把源对应字段改为目标字段
	* @param migData 数据
	* @param formShowList 所有列的字段集合
	* @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
	* @date 2019-08-31 
	* @author HuangJian
	*/
	List<Map<String, Object>> sourceKeyReplaceTgtKey(List<Map<String, Object>> migData, List<Map<String, Object>> formShowList);
	/**
	* @Title: addNodeRemarkByTgtNodeId
	* @Description: 把分类树管理的节点 备注字段加入到数据集合中
	* @param tgtNodeId 目标节点ID
	* @return List<Map<String, Object>>
	* @date 2019-08-31
	* @author HuangJian
	*/
	public List<List<Map<String, Object>>> addNodeRemarkByTgtNodeId(String tgtNodeId,List<List<Map<String, Object>>> dataResult);
	/**
	* @Title: addSysFixColumns 
	* @Description:  增加系统固定的字段信息
	* @param dataResult 多条数据集合
	* @param param 固定系统字段参数
	* @return java.util.List<java.util.List<java.util.Map<java.lang.String,java.lang.Object>>>
	* @date 2019-09-01 
	* @author HuangJian
	*/
	public List<List<Map<String, Object>>> addSysFixColumns(List<List<Map<String, Object>>> dataResult,Map<String, Object> param);

	/**
	* @Title: commonSaveAnOrFile
	* @Description:  保存案卷级 或者 卷内件
	* @param listMap 需要保存的字段信息集合
	* @param tgtTableName 表英文名称
	* @param tgtTableId  表ID
	* @param fileType  file文件级  an:案卷级
	* @return java.util.Map<java.lang.String,java.lang.Object>
	* @date 2019-09-01
	* @author HuangJian
	*/
	public Map<String, Object> commonSaveAnOrFile(List<Map<String, Object>> listMap,String tgtTableName,String tgtTableId,String fileType, String sourceTableName,String orgId);
	/**
	 * 删除lantopsubmit 关联数据
	 * @MethodName: removeLantopSubmitRelData
	 * @param ids
	 * @Return: void
	 * @Author: 屈星宇
	 * @Date: 2019/9/10 17:29
	 */
	void removeLantopSubmitRelData(String ids, String formId);
	
	/**
	 * 删除lantopsubmit 关联数据
	 * @MethodName: removeLantopSubmitRelData
	 * @param ids
	 * @Return: void
	 * @Author: 
	 * @Date: 2020-12-18
	 */
	void removeLantopSubmitRelData(String ids, String formId, String isAn);
	/**
	 * 执行 
	 * @MethodName: executiveProcedure 
	 * @param sql
 * @param filterSql
	 * @Return: void 
	 * @Author: 屈星宇
	 * @Date: 2019/9/11 11:01
	 */
	List<Map<String,Object>> executiveProcedure(String sql, String filterSql, ModelAndView mav, Map<String,Object> map);
	/**
	 *  保存文档
	 * @MethodName: saveSubmitItemDataAll
	 * @param formId
	 * @param ids
	 * @Return: void
	 * @Author: 屈星宇
	 * @Date: 2019/9/11 16:01
	 */
	void saveSubmitItemDataAll(String formId, String ids, String sysId, String deptId, String orgId);
	/**
	 *
	 * @MethodName: getAllIdsList
	 * @param formId
	 * @Return: void
	 * @Author: 屈星宇
	 * @Date: 2019/9/12 15:32
	 */
	void getAllIdsList(String formId, ModelAndView mav);
	/**
	 * 查询submit表中的集合
	 * @MethodName: runSubmitSelList
	 * @param sql
	 * @Return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
	 * @Author: 屈星宇
	 * @Date: 2019/9/14 17:11
	 */
	List<Map<String, Object>> runSubmitSelList(String sql);

	/**
	 * 根据roleId查询审批角色是不是专职档案管理员
	 * @param roleId
	 * @return
	 */
	boolean getRole(String roleId);
	/**
	 * 执行处理业务
	 * @MethodName: getDealWithBusiness 
	 * @param formId
 * @param ids
	 * @Return: void 
	 * @Author: 屈星宇
	 * @Date: 2019/9/18 15:29
	 */
    void getDealWithBusiness(String formId, String ids) throws SQLException;
	/**
	 * 将menuCode和nodeId拼至 单子 
	 * @MethodName: updateSubmitATT7 
	 * @param formId
 * @param menuCode
 * @param nodeId
	 * @Return: void 
	 * @Author: 屈星宇
	 * @Date: 2019/9/18 21:22
	 */
	void updateSubmitATT7(String formId, String menuCode, String nodeId);

	/**
	 * SanXiafiles create by zhaoxiaolong 组件页面点击返回时更新对应文件附件题名
	 * @param ids
	 * @param tableId
	 */
	void updateFjtmByIds(String ids, String tableId);

    List<Map<String, Object>> getCbbMyUndoApply(String formId);

	/**
	 * 字段对应设置 获取对应字段
	 *
	 * @param param
	 * @return
	 */
	public Map<String, Object> toFieldMapSetItem(Map<String, Object> param) throws Exception;

	 /**
	  * @Description  获取文书类最大序号
	  * @Author zcl
	  * @Date 2020/1/9 15:22
	  **/
	public List<Map<String, Object>> getMAXORDERById(String sysId, String orgId, String deptId, String userId, String type) throws Exception;

	 /**
	  * @Description 判断数据来源
	  * @Author zcl
	  * @Date 2020/1/9 16:12
	  **/
	 public Map<String, String> judgeDataSource(String idsAll, String tableId);

	  /**
	   * @Description 删除流程，文书类审批标题序号置为-1
	   * @return
	   * @Author zcl
	   * @Date 2020/1/13 19:07
	   **/
    void updateSerialNumber(String formId);

    /**
    * @Title: copyFourResultRelationDatas
    * @Description:  复制四性检测 从归档接口 复制到整理归档
    * @param params
    * @return java.util.Map<java.lang.String,java.lang.Object>
    * @date 2020-01-15
    * @author HuangJian
    */
    public Map<String,Object> copyFourResultRelationDatas(Map<String,Object> params) throws Exception;
    
    /**
     * 根据表ID，获取整理中最大保管号
     * @param roleId
     * @return 
     * @throws
     */
    public String getBghBytableName(String tableId,String nodeId) throws Exception;

	/**
	 * 根据节点Id获取节点类型
	 * @param nodeId
	 * @return
	 * @throws
	 */
	public String getNodeTypeByNodeId(String nodeId) throws Exception;

	/**
	 * 根据表单ID删除归档流程数据
	 * @param formId
	 */
    void delLantopSubmitAnditem(String formId)throws Exception;

	/**
	 * 根据多个条目ID 修改归档单位信息
	 * @param ids
	 * @param tableName
	 * @param deptId
	 * @param orgId
	 * @param deptName
	 * @return
	 */
    Map<String, Object> updateGddwInfoByIds(String ids, String tableId, String deptId, String orgId, String deptName);
}